<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
    <head>
        <!-- 页面meta -->
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Java2019-C190708</title>

        <!-- Tell the browser to be responsive to screen width -->
        <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">

        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/morris/morris.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/select2/select2.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/css/style.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css">
        <link rel="stylesheet"
              href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css">
    </head>

    <body class="hold-transition skin-blue sidebar-mini">

        <div class="wrapper">
            <!-- 内容区域 -->
            <div class="content-wrapper" style="margin-left: 0px">

                <!-- 内容头部 -->
                <section class="content-header">
                    <h1>
                        角色管理 <small>全部角色</small>
                    </h1>
                    <ol class="breadcrumb">
                        <li>
                            <a href="${pageContext.request.contextPath}/index.html">
                                <i class="fa fa-dashboard"></i> 首页</a>
                        </li>
                        <li>
                            <a href="${pageContext.request.contextPath}/role/roleManagement">角色管理</a></li>
                        <li class="active">全部角色</li>
                    </ol>
                </section>
                <!-- 内容头部 /-->

                <!-- 正文区域 -->
                <section class="content"> <!-- .box-body -->
                    <div class="box box-primary">
                        <div class="box-header with-border">
                            <h3 class="box-title">列表</h3>
                        </div>
                        <div class="box-body">
                            <!-- 数据表格 -->
                            <div class="table-box">
                                <!--工具栏-->
                                <div class="pull-left">
                                    <div class="form-group form-inline">
                                        <div class="btn-group">
                                            <button type="button" class="btn btn-default" title="新建"
                                                    onclick="location.href='role/addRole'">
                                                <i class="fa fa-file-o"></i> 新建
                                            </button>
                                            <button type="button" class="btn btn-default" title="刷新"
                                                    onclick="location.href='role/roleManagement'">
                                                <i class="fa fa-refresh"></i> 刷新
                                            </button>
                                        </div>
                                    </div>
                                </div>
                                <div class="box-tools pull-right">
                                    <div class="has-feedback">
                                        <input type="text" class="form-control input-sm"
                                               placeholder="搜索"> <span
                                            class="glyphicon glyphicon-search form-control-feedback"></span>
                                    </div>
                                </div>
                                <!--工具栏/-->

                                <!--数据列表-->
                                <table id="dataList"
                                       class="table table-bordered table-striped table-hover dataTable">
                                    <thead>
                                        <tr>
                                            <th class="" style="padding-right: 0px">
                                                <input id="selall" type="checkbox" class="icheckbox_square-blue">
                                            </th>
                                            <th class="sorting_asc">ID</th>
                                            <%--<th class="sorting_desc">角色编码</th>--%>
                                            <th class="sorting">角色名称</th>
                                            <th class="sorting">操作</th>
                                        </tr>
                                    </thead>
                                    <tbody id="role">
                                        <c:if test="${roleList.size() > 0}" var="flag">
                                            <c:forEach items="${roleList}" var="role" varStatus="st">
                                                <tr>
                                                    <td><input name="ids" type="checkbox"></td>
                                                    <td hidden="true">${role.roleId}</td>
                                                    <td>${st.count}</td>
                                                    <td>${role.roleName}</td>
                                                    <td class="text-center">
                                                        <a href="#" class="btn bg-olive btn-xs">删除</a>
                                                        <!-- Button trigger modal -->
                                                        <button type="button" class="btn btn-primary btn-xs"
                                                                data-toggle="modal" data-target="#resourceManagement">
                                                            分配资源
                                                        </button>
                                                    </td>
                                                </tr>
                                            </c:forEach>
                                        </c:if>
                                    </tbody>
                                </table>
                                <!--数据列表/-->
                            </div>
                            <!-- 数据表格 /-->
                        </div>
                        <!-- /.box-body -->
                    </div>
                </section>
                <!-- 正文区域 /-->

            </div>
            <!-- @@close -->
            <!-- 内容区域 /-->

            <div class="modal fade" id="resourceManagement" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog modal-dialog-centered" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                            <h4 class="modal-title">资源分配</h4>
                        </div>
                        <div class="modal-body">
                            <div class="container-fluid">
                                <div class="nav col-md-12 row">
                                    <label class="col-md-5">角色名称:&nbsp</label>
                                    <div class="col-md-5" id="roleName">

                                    </div>
                                </div>
                                <div class="nav col-md-12 row">
                                    <label class="col-md-6 col-form-label">资源列表:&nbsp</label>
                                    <div class="col-md-auto col-form-label">
                                        <div class="form-check">
                                            <input class="form-check-input" type="checkbox" id="chkAll">
                                            <label class="form-check-label" for="chkAll">
                                                全选
                                            </label>
                                        </div>
                                        <div id="resourceList">

                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                            <button type="button" class="btn btn-primary" id="btnSave">保存</button>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Modal -->
            <div class="modal fade" id="tips" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-body">
                            <div class="modal-header">
                                <h5 class="modal-title">tips</h5>
                            </div>
                            <div class="modal-body">
                                成功保存最新的分配权限！
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 底部导航 -->
            <footer class="main-footer">
                <div class="pull-right hidden-xs">
                    <b>Version</b> 1.0.8
                </div>
                <strong>Copyright &copy; 2018-2020 <a
                        href="http://www.itcast.cn">研究院研发部</a>.
                </strong> All rights reserved.
            </footer>
            <!-- 底部导航 /-->

        </div>

        <script type="text/javascript"
                src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js"></script>
        <script>
            $.widget.bridge('uibutton', $.ui.button);
        </script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/morris/morris.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js"></script>
        <script src="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js"></script>
        <script type="text/javascript">
            $(function () {
                /**
                 * 分配按钮点击事件
                 */
                $("#role").on("click", ".btn-primary", function () {
                    let $td = $(this).parent().parent().find("td");
                    let roleId = $td.eq(1).text();
                    // 角色名称
                    let roleName = $td.eq(3).text()
                    $("#roleName").text(roleName)

                    $.ajax({
                        url: "${pageContext.request.contextPath}/permission/selectPermission_enable",
                        type: "post",
                        dataType: "json",
                        success: function (resp) {
                            $("#resourceList").empty();
                            $.each(resp, function (index, element) {
                                // 取消全选
                                $("#chkAll").prop("checked", false)
                                $("#resourceList").append("<label class=\"col-form-label col-12\">" +
                                    "<input class=\"form-check-input\" type=\"checkbox\" value=" + element.permissionId + ">&nbsp;&nbsp;" + element.permissionName + "</label>")
                            })

                            // 查询角色权限
                            $.ajax({
                                url: "${pageContext.request.contextPath}/role/selectRolePermission",
                                type: "post",
                                data: {
                                    "roleId": roleId
                                },
                                dataType: "json",
                                success: function (resp) {
                                    $.each(resp.permissionList, function (index, element) {
                                        $("input[value='" + element.permissionId + "']").prop("checked", true)
                                    })

                                    // 复选框的全选
                                    $("#chkAll").prop("checked", $("#resourceList input:checkbox:checked").length === $("#resourceList input:checkbox").length)
                                }
                            })
                        }
                    })

                    /**
                     * 保存按钮被点击
                     */
                    $("#btnSave").unbind("click").on("click", function () {
                        // 隐藏模态框
                        $("#resourceManagement").modal("hide")
                        let $checkedBoxes = $("#resourceList input:checked");
                        if ($checkedBoxes.length === 0) {
                            alert("还没有给该角色分配资源！！！")
                        } else {
                            let permissionIdBatches = "";
                            $checkedBoxes.each(function (index, element) {
                                permissionIdBatches += $(element).val()
                                if (index < $checkedBoxes.length - 1) {
                                    permissionIdBatches += ",";
                                }
                            })
                            $.ajax({
                                url: "${pageContext.request.contextPath}/role/saveAllocatedPermission",
                                type: "post",
                                data: {
                                    "roleId": roleId,
                                    "permissionIdBatches": permissionIdBatches
                                },
                                success: function () {
                                    // 保存成功，弹出一个模态框，5s后消失
                                    $("#tips").modal("show")
                                    setTimeout("$('#tips').modal('hide')", 5000)
                                }
                            })
                        }
                    })
                })

                /**
                 * 复选框的全选和取消
                 * 当全选按钮被点击时，实现复选框的取消和取消
                 */
                $("#chkAll").click(function () {
                    $("#resourceList input:checkbox").prop("checked", $("#chkAll").prop("checked"));
                });

                /**
                 * 当其他复选框被点击时，实现全选按钮的选中或取消
                 */
                $("#resourceList").on("click", ":checkbox", function () {
                    // 当普通按钮被点击时，判断普通按钮是否全部选中，如果是全部选中，全选按钮状态变成选中状态，否则，全选按钮状态变成取消状态
                    $("#chkAll").prop("checked", $("#resourceList input:checkbox:checked").length === $("#resourceList input:checkbox").length)
                })

                // 删除角色信息
                $("#role").on("click", ".bg-olive", function () {
                    if (confirm("是否要删除该角色信息")) {
                        //let roleId = $(this).parent().parent().find("td:eq(1)").text();
                        let roleId = $(this).parent().parent().find("td:hidden").text();
                        $.ajax({
                            url: "deleteRole",
                            type: "post",
                            data: {
                                "roleId": roleId
                            },
                            success: function () {
                                location.href = "${pageContext.request.contextPath}/role/roleManagement"
                            }
                        })
                    }
                })
            })
            $(document).ready(function () {
                // 选择框
                $(".select2").select2();

                // WYSIHTML5编辑器
                $(".textarea").wysihtml5({locale: 'zh-CN'});
            });

            // 设置激活菜单
            function setSidebarActive(tagUri) {
                var liObj = $("#" + tagUri);
                if (liObj.length > 0) {
                    liObj.parent().parent().addClass("active");
                    liObj.addClass("active");
                }
            }

            $(document).ready(function () {
                // 激活导航位置
                setSidebarActive("admin-datalist");
                // 列表按钮
                $("#dataList td input[type='checkbox']").iCheck({
                    checkboxClass: 'icheckbox_square-blue',
                    increaseArea: '20%'
                });
                // 全选操作
                $("#selall").click(function () {
                    var clicks = $(this).is(':checked');
                    if (!clicks) {
                        $("#dataList td input[type='checkbox']").iCheck("uncheck");
                    } else {
                        $("#dataList td input[type='checkbox']").iCheck("check");
                    }
                    $(this).data("clicks", !clicks);
                });
            });
        </script>
    </body>

</html>